home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 18 / CU Amiga Magazine's Super CD-ROM 18 (1997)(EMAP Images)(GB)[!][issue 1998-01].iso / CUCD / Programming / AmigaE / Src / OOmodules / list / associativeArray / listTest.e < prev   
Encoding:
Text File  |  1996-09-10  |  3.7 KB  |  150 lines

  1. /*
  2.  
  3. This is nearly the same test program like the one that was written by Barry.
  4. The only difference is the function printAll(): it creates elists of
  5. keys and values with the method asList().
  6.  
  7.   January 28 1996 Gregor Goldbach
  8.  
  9. */
  10.  
  11. OPT REG=5,
  12.     PREPROCESS
  13.  
  14. MODULE 'oomodules/list/associativeArray'
  15.  
  16. #define TEST1
  17. #define TEST2
  18. #define TEST3
  19. #define TEST4
  20. #define TEST5
  21. #define TEST6
  22. #define TEST7
  23. #define TEST8
  24.  
  25. OBJECT aa OF associativeArray
  26. ENDOBJECT
  27.  
  28. PROC printAll() OF aa
  29. DEF values:PTR TO LONG,
  30.     keys:PTR TO LONG,
  31.     index,
  32.     numberOfItems
  33.  
  34.   keys, values := self.asList()
  35.   numberOfItems := ListLen(keys)
  36.  
  37.   FOR index:=0 TO numberOfItems-1 DO WriteF('key\d=\d \tval\d=$\h\n', index, keys[index], index, values[index])
  38.  
  39.   WriteF('\n')
  40.  
  41. ENDPROC
  42.  
  43. PROC main() HANDLE
  44.   DEF ar:PTR TO aa, i
  45.   NEW ar.new()
  46. /*---------------------------------------------------------------------------*/
  47. /*--- test order of insert --------------------------------------------------*/
  48. /*---------------------------------------------------------------------------*/
  49. #ifdef TEST1
  50.   WriteF('/*** TEST 1 ***/\n')
  51.   ar.set(1, $1111); ar.printAll()
  52.   ar.set(2, $2222); ar.printAll()
  53.   ar.set(3, $3333); ar.printAll()
  54.   ar.set(4, $4444); ar.printAll()
  55.   ar.set(5, $5555); ar.printAll()
  56.   END ar
  57. #endif
  58. #ifdef TEST2
  59.   NEW ar.new()
  60.   WriteF('/*** TEST 2 ***/\n')
  61.   ar.set(5, $5555); ar.printAll()
  62.   ar.set(4, $4444); ar.printAll()
  63.   ar.set(3, $3333); ar.printAll()
  64.   ar.set(2, $2222); ar.printAll()
  65.   ar.set(1, $1111); ar.printAll()
  66.   END ar
  67. #endif
  68. #ifdef TEST3
  69.   NEW ar.new()
  70.   WriteF('/*** TEST 3 ***/\n')
  71.   ar.set(5, $5555); ar.printAll()
  72.   ar.set(1, $1111); ar.printAll()
  73.   ar.set(4, $4444); ar.printAll()
  74.   ar.set(2, $2222); ar.printAll()
  75.   ar.set(3, $3333); ar.printAll()
  76.   END ar
  77.  
  78. #endif
  79. #ifdef TEST4
  80.   NEW ar.new()
  81.   WriteF('/*** TEST 4 ***/\n')
  82.   ar.set(3, $3333); ar.printAll()
  83.   ar.set(4, $4444); ar.printAll()
  84.   ar.set(2, $2222); ar.printAll()
  85.   ar.set(5, $5555); ar.printAll()
  86.   ar.set(1, $1111); ar.printAll()
  87.   END ar
  88. #endif
  89. #ifdef TEST5
  90.   NEW ar.new()
  91.   WriteF('/*** TEST 5 ***/\n')
  92.   ar.set(1, $1111); ar.printAll()
  93.   ar.set(5, $5555); ar.printAll()
  94.   ar.set(3, $3333); ar.printAll()
  95.   ar.set(2, $2222); ar.printAll()
  96.   ar.set(4, $4444); ar.printAll()
  97.   END ar
  98. #endif
  99.  
  100. /*---------------------------------------------------------------------------*/
  101. /*--- test overwrite --------------------------------------------------------*/
  102. /*---------------------------------------------------------------------------*/
  103. #ifdef TEST6
  104.   NEW ar.new()
  105.   WriteF('/*** TEST 6 ***/\n')
  106.   ar.set(1, $1111); ar.printAll()
  107.   ar.set(5, $5555); ar.printAll()
  108.   ar.set(3, $3333); ar.printAll()
  109.   ar.set(4, $4444); ar.printAll()
  110.   ar.set(2, $2222); ar.printAll()
  111.  
  112.   ar.set(1, $5555); ar.printAll()
  113.   ar.set(2, $4444); ar.printAll()
  114.   ar.set(3, $3333); ar.printAll()
  115.   ar.set(4, $2222); ar.printAll()
  116.   ar.set(5, $1111); ar.printAll()
  117.   END ar
  118. #endif
  119. /*---------------------------------------------------------------------------*/
  120. /*--- test get() and remove() -----------------------------------------------*/
  121. /*---------------------------------------------------------------------------*/
  122. #ifdef TEST7
  123.   NEW ar.new()
  124.   WriteF('/*** TEST 7 ***/\n')
  125.   ar.set(3, $3333); ar.printAll()
  126.   ar.set(2, $2222); ar.printAll()
  127.   ar.set(4, $4444); ar.printAll()
  128.   ar.set(1, $1111); ar.printAll()
  129.   ar.set(5, $5555); ar.printAll()
  130.  
  131.   FOR i:=1 TO 5 DO WriteF('get(\d)=$\h\n', i, ar.get(i))
  132.   WriteF('\n')
  133.  
  134.   ar.remove(3); ar.printAll()
  135.   ar.remove(1); ar.printAll()
  136.   ar.remove(5); ar.printAll()
  137.   ar.remove(4); ar.printAll()
  138.   ar.remove(2); ar.printAll()
  139.   END ar
  140. #endif
  141. #ifdef TEST8
  142.   NEW ar.new()
  143.   WriteF('/*** TEST 8 (should raise exception) ***/\n')
  144.   ar.remove("blah") ->should raise exception
  145. #endif
  146. EXCEPT DO
  147.   IF exception THEN WriteF('BOOM!\n')
  148.   CleanUp()
  149. ENDPROC
  150.